﻿using System;
using System.Collections.Generic;
using System.Linq;
using Sorteo.BusinessEntities;
using Sorteo.DataObjects;

namespace Sorteo.BusinessComponents
{
    public static class BCPromocion
    {
        #region Methods: Public

        public static List<BEPromocion> GetList()
        {
            return DOPromocion.GetList();
        }

        public static List<BEPromocion> GetActiveList()
        {
            var list = GetList();
            var today = DateTime.Today;
            var activeList = (from p in list where p.FechaInicio <= today && p.FechaFinal >= today select p).ToList();
            return activeList;
        }

        public static void Save(BEPromocion promo)
        {
            if (promo.Id == 0)
                DOPromocion.Insert(promo);
            else
                DOPromocion.Update(promo);
        }

        public static void Delete(int id)
        {
            DOPromocion.Delete(id);
        }

        public static void CargarConcursantesDesdeExcel(string archivo, int promocionId)
        {
            DOPromocion.CargarConcursantesDesdeExcel(archivo,promocionId);
            DOPromocion.CalculaAcciones(promocionId);
        }

        public static void Cleanup()
        {
            DOPromocion.Cleanup();
        }

        public static List<BEGanador> EjecutaSorteo(int sorteoId)
        {
            return DOPromocion.EjecutaSorteo(sorteoId);
        }

        public static List<BEGanador> EjecutaSorteo(DateTime inicio, DateTime final, int totalGanadores, bool favorecerMultiplesVeces)
        {
            return DOPromocion.EjecutaSorteo(inicio, final, totalGanadores, favorecerMultiplesVeces);
        }

        public static List<BEConcursanteReport> GetConcursantesReport(int promocionId, bool soloFavorecidos, string cedula, string nombre)
        {
            return DOPromocion.GetConcursantesReport(promocionId, soloFavorecidos, cedula, nombre);
        }

        #endregion
    }
}
